#ifndef MYHEAD_H
#define MYHEAD_H

#define _DEFAULT_SOURCE
#include "lvgl/lvgl.h"
#include "lvgl/demos/lv_demos.h"
#include "lv_drivers/display/fbdev.h"
#include "lv_drivers/indev/evdev.h"
#include <unistd.h>
#include <stdlib.h>
#include <pthread.h>
#include <time.h>
#include <stdio.h>
#include<time.h>
#include <sys/time.h>
#include<dirent.h>
#include<string.h>
#include<stdbool.h>
#include<fcntl.h>
#include<errno.h>
#include<linux/input.h>
#include<sys/mman.h>
#include <dlfcn.h>
#include<signal.h>
#include<pthread.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<netinet/in.h>
#include <netdb.h> 
#define DISP_BUF_SIZE (1200 * 600)

#define V 20
typedef struct{
  lv_obj_t *ta_username;
  lv_obj_t *ta_password;
}login_input_t;

typedef struct {
  char name[64];
  char password[64];
  int flag;
}user;

typedef struct Node {
    int vertex;           // 顶点
    int line;            // 边所属的线路
    struct Node* next;    // 下一个节点
} Node;

typedef struct {
    Node* head;
} AdjList;

typedef struct {
    AdjList array[V];
} Graph;

typedef struct {
    const char *name;  // 地点名称
    int node_id;       // 对应节点编号
} PlaceMap;

typedef struct {
    const char *pinyin;
    const char *candidates; // 候选词（字符串形式）
} pinyin_entry_t;

extern lv_font_t *chinese_font;
extern int tcpsock;
extern int n;
extern  char ip[20];
extern char sbuf[1000];

#endif